package util;

import java.util.regex.Pattern;

public class Validator {
	
	private static String bankCardReg = "(^[0-9]{1,20}?$)";
	private static String moneyReg = "(^[0-9]{1,11}+(.[0-9]{0,2})?$)";
	private static String emailReg = "^([a-zA-Z0-9]*[-_]?[a-zA-Z0-9]+)*@([a-zA-Z0-9]*[-_]?[a-zA-Z0-9]+)+[\\.][A-Za-z]{2,3}([\\.][A-Za-z]{2})?$";
	
	
	/*
	 * 验证是否为数字
	 * 
	 * */
	public static boolean Number(String number) {
		return validate(number,"(^[0-9]*$)");
	}	
	
	/*
	 * 验证银行卡的信息是否符合标准
	 * 
	 * 暂定标准为1到20位
	 * 
	 * */
	public static boolean BankCard(String bankCard) {
		return validate(bankCard,bankCardReg);
	}
	
	/*
	 * 验证输入的金额是否符合标准
	 * 
	 * */
	
	public static boolean Money(String money) {
		return validate(money,moneyReg);
	}

	/*
	 * 验证邮箱是否合法
	 * */
	public static boolean Email(String email) {
		return validate(email,emailReg);
	}
	
	/*
	 * 验证数据的长度是否符合标准
	 * min为最小的位数
	 * max为最大的位数
	 * 
	 * */
	public static boolean Length(String s, int min, int max) {
		String reg = "^\\d{" + min + "," + max + "}$";
		return validate(s,reg);
	}
	
	private static boolean validate(String str,String reg){
		return Pattern.compile(reg).matcher(str).matches();
	}
}
